D3dCreateSurfaceEx と複合サーフェス

您所在的位置:网站首页 createsurface arcgis D3dCreateSurfaceEx と複合サーフェス

D3dCreateSurfaceEx と複合サーフェス

2024-04-30 07:33| 来源: 网络整理| 查看: 265

D3dCreateSurfaceEx と複合サーフェス [アーティクル] 04/01/2024

DirectDraw ドキュメントの「DirectDraw サーフェスの作成と破棄」で説明されているように、複合サーフェスを作成すると、サーフェスの配列が DdCreateSurface に渡されます。 ただし、複合の場合でも、ルート サーフェスへのポインターのみが D3dCreateSurfaceEx に渡されます。 ドライバーは、ルート サーフェスのアタッチメント サーフェス リストを処理し、添付されているすべてのサーフェスについてドライバー側のコピーを作成する必要があります。 ドライバーがキューブ マップまたは MIP マップの作成を処理しようとしている場合、この作業は、難易度の高い処理となる可能性があります。

DirectDraw サーフェス アタッチメント ファイルには、暗黙的なものと明示的なものの 2 種類があります。 暗黙的なアタッチメント ファイルは、複合サーフェスの作成時に形成されます。 たとえば、アプリケーションがプライマリ反転チェーンを作成すると、プライマリ バッファーとバック バッファーは 1 つの CreateSurface API 呼び出しによって作成され、CreateSurface 呼び出しによって暗黙的に相互にアタッチされます。 もう 1 つの例は、一連の MIP マップが 1 つの CreateSurface API 呼び出しによって作成される MIP マップ チェーンです。 異なる CreateSurface 呼び出しから作成されたサーフェスが AddAttachedSurface によって明示的にアタッチされると、明示的なアタッチが形成されます。

DirectX ランタイムがドライバーの D3dCreateSurfaceEx 関数を呼び出す方法とタイミング、およびドライバーがサーフェスを処理する方法は、それらのサーフェスが暗黙的にアタッチされているか明示的にアタッチされているかによって異なります。 2 つのサーフェスが明示的にアタッチされている場合、これらのサーフェスの両方が CreateSurface の個別の呼び出しによって作成され、サーフェスのアタッチが行われる前に各サーフェスで D3dCreateSurfaceEx が呼び出されます。 ただし、暗黙的にアタッチされたサーフェスの場合、サーフェスのチェーン全体に対して 1 つの CreateSurface 呼び出しと D3dCreateSurfaceEx 呼び出しのみが行われます。 したがって、D3dCreateSurfaceEx 呼び出しを処理する場合、ドライバーは、ハンドルを識別し、接続された各サーフェスのドライバー側のデータ構造体を作成するアタッチされたサーフェス リストを実行する必要があります。 ただし、アタッチされたサーフェス リストには、暗黙的に添付されたサーフェスと明示的に添付されたサーフェスの両方が含まれている可能性があります。 ドライバーは、D3dCreateSurfaceEx によって明示的にアタッチされたサーフェスについて既に通知を受けているため、これらのサーフェスを再度処理する必要はありません。

ドライバーは、DD_ATTACHLIST データ構造体の dwFlags フィールドに格納されている DDAL_IMPLICIT フラグを使用して、暗黙的なアタッチメントと明示的なアタッチメントを区別できます。 dwFlags フィールドに DDAL_IMPLICIT が設定されている場合、アタッチメントは暗黙的であり、アタッチされたサーフェスに対して個別の D3dCreateSurfaceEx 呼び出しは表示されません。 このフラグが設定されていない場合、アタッチメントは明示的であり、アタッチされたサーフェスは独自の D3dCreateSurfaceEx 呼び出しになります。 このフラグを調べることで、ドライバーは、親サーフェスの D3dCreateSurfaceEx 呼び出しの一部としてアタッチされたサーフェスを処理する必要があるかどうか、またはアタッチされたサーフェスに対して別の D3dCreateSurfaceEx 呼び出しが行われたかどうかを判断できます。

詳細については、「DirectDraw ドライバーの基本事項」のサーフェス アタッチメントのセクションを参照し、D3dCreateSurfaceEx に含まれるサンプル コードを参照してください。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3